Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
static char buffer[4096];
BUG_ON(down_trylock(&xenbus_lock) == 0);
+ /* XXX FIXME: might not be correct if name == "" */
BUG_ON(strlen(dir) + strlen("/") + strlen(name) + 1 > sizeof(buffer));
strcpy(buffer, dir);
ret = PTR_ERR(p);
break;
}
- if (sscanf(p, fmt, result) == 0)
- ret = -EINVAL;
- kfree(p);
+ if (fmt) {
+ if (sscanf(p, fmt, result) == 0)
+ ret = -EINVAL;
+ kfree(p);
+ } else
+ *(char **)result = p;
}
va_end(ap);
return ret;